/**
 *
 */
package com.naiterui.ehp.bs.doctor.dao.impl;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.naiterui.ehp.bp.constants.CommonConstant;
import com.naiterui.ehp.bp.domain.City;
import com.naiterui.ehp.bp.utils.lang.StringUtil;
import com.naiterui.ehp.bs.doctor.dao.ICityDao;
import com.naiterui.ehp.bs.doctor.repository.ICityRepository;

/**
 * @Description 概述
 */
@Component
public class AdCityDaoImpl  implements ICityDao {

    @Autowired
    private ICityRepository cityRepository;

    @Override
    public City get(Integer id) {

        return cityRepository.get(id);
    }

    /**
     * <根据pid获取城市列表>
     * @param pid
     * @return List<City> <返回值描述>
     * @Throws 异常信息
     * @History 2015-6-21 下午3:43:31 by guoyongxiang
     */
    @Override
    public List<City> getCityByPid(Integer pid) {
        return cityRepository.findByAvailableAndParentIdOrderByIdAsc(CommonConstant.AVAILABLE_VALID, pid);
    }

    /**
     * @Author liudelong
     * @Date 2015年12月29日
     * @since 2.0.0
     * @param pid 上级区域ID 全国ID
     * @return List<City> 城市列表
     * @see ICityDao#getCitysByParentId(java.lang.Integer)
     */
    @Override
    public List<City> getCitysByParentId(Integer pid) {
        return cityRepository.findByAvailableAndParentIdOrderByIdAsc(CommonConstant.AVAILABLE_VALID, pid);
    }

    @Override
    public List<City> getCitysByIds(Set<Integer> ids) {
        String drIdStr = StringUtil.convertCollection(ids);
        if (StringUtils.isNotEmpty(drIdStr)) {
            return cityRepository.findByIdIn(ids);
        }
        return new ArrayList<>();
    }

    @Override
    public List<City> getAll() {
        return cityRepository.findAll();
    }
}
